package byteOp;
/**
 * 
* @ClassName: byteOp
* @Description: TODO(java位操作：https://blog.csdn.net/mxiaoyem/article/details/78569782)
* @author hsj
* @email 2356899074@qq.com
* @date 2019年6月5日
*
 */
public class byteOp {
  public static void main(String[] args) {
	  BitLeftMove();
	  BitRighttMoveSign();
	  BitRighttMoveNoSign();
 }

  /**
   * 
  * @Description: TODO(左移位操作符（<<）能按照操作符右侧指定的位数将操作符左边的操作数向左移动（在低位补0）
  *                   5的二进制是   0000 0000 0000 0101
                                                       左移两位         0000 0000 0001 0100
  * )
  * @author hsj
  * @date 2019年6月5日
   */
  private static void BitLeftMove(){
	  System.out.println(5<<2);
  }
  /**
   * 
  * @Description: TODO(“有符号”右移位操作符（>>）则按照操作符右侧指定的位数将操作符左边的操作数向右移。“有符号”右移位操作符使用“符号扩展”；若符号位正，则在高位插入0；若符号位负。则在高位插入1
  *                    5的二进制是   0000 0000 0000 0101
                                                          右移两位         0000 0000 0000 0001 
                                                          
                       -5的二进制是   1111 1111 1111 1011
                                                           右移两位          1111 1111 1111 1110                                    
  * )
  * @author hsj
  * @date 2019年6月5日
   */
  private static void BitRighttMoveSign(){
	  System.out.println(5>>2);
	  System.out.println(-5>>2);
  }
  /**
   * 
  * @Description: TODO(无符号”右移位操作符（>>>）,他使用“零扩展”；无论正负，都在高位插入0
  * )
  * @author hsj
  * @date 2019年6月5日
   */
  private static void BitRighttMoveNoSign(){
	  System.out.println(5>>>2);
	  System.out.println(-5>>>2);
  }
}
